package com.seari.tunnel.service;

import java.util.List;

import com.seari.tunnel.entity.MaintenancePlan;
import com.seari.tunnel.entity.MaintenanceRecord;
import com.seari.tunnel.entity.MaintenanceRecordCost;
import com.seari.tunnel.entity.OperationDevice;
import com.seari.tunnel.entity.OperationDeviceType;
import com.seari.tunnel.entity.OperationSpare;
import com.seari.tunnel.entity.RepairApply;
import com.seari.tunnel.entity.RepairApplyCost;

public interface IMaintenanceRepairService {
	
	String SERVICE_NAME="maintenanceRepairService";
	
	public List<MaintenancePlan> findMaintenancePlan();
	
	public void addMaintenancePlan(MaintenancePlan maintenancePlan);
	
	public void updateMaintenancePlan(MaintenancePlan maintenancePlan);
	
	public void deleteMaintenancePlan(MaintenancePlan maintenancePlan);
	
	public List<MaintenanceRecord> findMaintenanceRecord();
	
	public List<MaintenanceRecord> findFinishMaintenanceRecord();
	
	public void addMaintenanceRecord(MaintenanceRecord maintenanceRecord)throws RuntimeException;

	public void updateMaintenanceRecord(MaintenanceRecord maintenanceRecord)throws RuntimeException;
	
	public void delMaintenanceRecord(MaintenanceRecord maintenance)throws RuntimeException;
	
	public List<MaintenanceRecord> findMaintenanceRemind();
	
	public List<RepairApply> findRepairApply();
	
	public void addRepairApply(RepairApply repairApply);
	
	public void deleteRepairApply(RepairApply repairApply);
	
	public List<RepairApply> findRepairRecord();
	
	public List<RepairApply> findFinishRepairRecord();
	
	public void updateRepairRecord(RepairApply repairRecord);
	
	public List<OperationDevice> findOperationDevice();
	
	public void deleteOperationDevice(int i);
	
	public void addOperationDevice(OperationDevice operationDevice);
	
	public void updateOperationDevice(OperationDevice operationDevice);
	
	public List<OperationDeviceType> findOperationDeviceType();
	
	public List<MaintenancePlan> findUnfinishedMaintenancePlan();
	
	public OperationSpare findOperationSpareById(int id);
	
	public void addOperationSpareCost(int id,int os_id,String costNum)throws RuntimeException;
	
	public void addRepairApplyCost(int id,int os_id,String costNum)throws RuntimeException;
	
	public void updateRepairApply(RepairApply repairApply);
	
	public void updateRepairState(RepairApply repairApply);
	
	public List<MaintenanceRecordCost> findOSCostById(int id);
	
	public List<RepairApplyCost> findRACostById(int id);
	
	public List<MaintenancePlan> findMaintenancePlanByDeviceCode(String DeviceCode);
}
